iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
AI & Data

Python零基礎到Kaggle 系列 第 14

Python零基礎到kaggle-Day13

  • 分享至 

  • xImage
  •  

今日目標

特徵工程,建模,訓練,預測Part1
接下來是這次練習另一個重頭戲,接下來這三天會是各部份講解,第四天(Day16)會展示三部份的程式碼
今天會先來看怎麼處理:
1.性別文字轉為數字
2.定義基準模型與OOB測試模型
3.處理Fare缺值

看完文章您將學到什麼

1轉換類別標籤為數值,2沒上傳到kaggle前使用OOB看模型評分,3如何填補缺值

內文

性別轉數字部分我們可以用map把female,male轉成1,0,astype在說這個1,0是數字格式
df_data['Sex'].map({'female' : 1, 'male' : 0}).astype('int')
要處理的文字資料都處理完後再次切分測試與訓練集,因為我們要上傳的格式是測試集預測的樣本跟預測結果

OOB全名是Out-Of-Bag,做為驗證資料集,隨機森林由一群決策樹組成,單顆決策樹並不會用所有的訓練資料,
每一次選一塊資料來訓練一顆決策樹時,剩下的資料並沒有被拿來訓練該顆決策樹,因此可以做為驗證資料,即Out-Of-Bag
但什麼是驗證資料集呢?
一般來說機器學習任務我們會遇到:

  • 訓練集(Training set): 擬合/訓練模型
  • 測試集(Test set): 模型預測,評價性能,與訓練集互斥
  • 驗證集(Cross lidationlidation set): 調整模型超參數,交叉驗證也用到,決定算法

前兩個Kaggle有提供,第三個用來評價我們做得更動對模型好壞
但也有使用留出法,驗證:測試=80:20或70:30的方式,但較不嚴謹

還記得昨天提到Age,Cabin,Embarked有缺值,而Fare在測試資料集有個缺值需填補
缺失值個數訓練與測試集加總分別為:
Fare 1
Cabin 1014
Embarked 2
Age 263

看來問題最大的是船艙號碼,最小的是票價
票價缺失值不多,我們可以分組取中位數

程式撰寫

我們會在Day16一次說明

反思回顧

這邊要思考一下這麼多缺值每個都需要填補,還是該針對對OOB有幫助的特徵填補?
又該怎麼填補才是好的?
特徵就只有看到的才重要,還是我們可以組合出更重要的特徵?

參考資料

https://medium.com/@yulongtsai/https-medium-com-yulongtsai-titanic-top3-8e64741cc11f


上一篇
Python零基礎到kaggle-Day12
下一篇
Python零基礎到kaggle-Day14
系列文
Python零基礎到Kaggle 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言